home *** CD-ROM | disk | FTP | other *** search
- /*
- Little Smalltalk
-
- The following very common commands are given a concise description
- in bytecodes.
-
- */
-
- static char *unspecial[] = {"new", "isNil", "notNil", "size", "class",
- "value", "first", "next", "print", "printString",
- "strictlyPositive", "currentKey", "not",
-
- /* after the first 16 - which should be the most common
- messages, order doesn't make as much difference so we
- might as well list things in alphabetical order */
-
- "abs",
- "asArray",
- "asFloat",
- "asString",
- "asSymbol",
- "block",
- "compareError",
- "copy",
- "current",
- "deepCopy",
- "exp",
- "findLast",
- "firstKey",
- "gamma",
- "isEmpty",
- "isLowercase",
- "isUppercase",
- "last",
- "lastKey",
- "ln",
- "newProcess",
- "not",
- "opError",
- "read",
- "removeError",
- "removeFirst",
- "removeLast",
- "resume",
- "rounded",
- "shallowCopy",
- "sqrt",
- "squared",
- "state",
- "superClass",
- "truncated",
- "unblock",
- "x",
- "y",
- 0 };
-
- # define VALUECMD 5
- # define PRNTCMD 8
-
- static char *binspecial[] = {"new:", "at:", "to:", "do:", "value:",
- "==", "~~", "timesRepeat:", "whileTrue:", "whileFalse:",
- "ifTrue:", "ifFalse:", "error:", "add:",
- "/", "coerce:",
-
- "^",
- ",",
- "//",
- "addAll:",
- "addAllLast:",
- "addFirst:",
- "addLast:",
- "binaryDo:",
- "checkBucket:",
- "collect:",
- "deepCopy:",
- "gcd:",
- "getList:",
- "hashNumber:",
- "includes:",
- "inRange:",
- "keysDo:",
- "log:",
- "maxtype:",
- "newProcessWith:",
- "occurrencesOf:",
- "raisedTo:",
- "reject:",
- "remove:",
- "removeKey:",
- "respondsTo:",
- "reverseDo:",
- "roundTo:",
- "select:",
- "shallowCopy:",
- "sort:",
- "termErr:",
- "truncateTo:",
- "write:",
- "x:",
- "y:",
- "includesKey:",
- 0};
-
- static char *arithspecial[] = {"+", "-", "*", "\\\\",
- "bitShift:", "bitAnd:", "bitOr:",
- "<", "<=", "=", "~=", ">=", ">",
- "rem:", "quo:", "min:", "max:",
- 0};
-
- static char *keyspecial[] = {"at:put:", "ifTrue:ifFalse:", "ifFalse:ifTrue:",
- "value:value:", "to:by:", "at:ifAbsent:",
- "indexOf:ifAbsent:", "inject:into:",
- "remove:ifAbsent:", "removeKey:ifAbsent:",
- "between:and:",
- "findFirst:ifAbsent:", "findLast:ifAbsent:",
- "equals:startingAt:",
- "findAssociation:inList:",
- "detect:ifAbsent:",
- 0};
-
- /* The classes included in the standard prelude
- also have a very concise description in bytecode representation
- */
-
- static char *classpecial[] = {"Array", "ArrayedCollection",
- "Bag", "Block", "Boolean", "ByteArray",
- "Char", "Class", "Collection", "Complex",
- "Dictionary", "False", "File", "Float",
- "Integer", "Interpreter", "Interval",
- "KeyedCollection", "List", "Magnitude", "Number",
- "Object", "OrderedCollection", "Point",
- "Radian", "Random",
- "SequenceableCollection", "Set", "String", "Symbol",
- "True", "UndefinedObject",
- 0 };
-